package com.sikao.app.fragment.base;


import android.support.v4.app.Fragment;
import android.util.Log;


/**
 * A simple {@link Fragment} subclass.
 */
public abstract class MyBaseFragment extends Fragment {

	/** 标志位，标志已经初始化完成 */
	protected boolean isPrepared;
	/** 是否已被加载过一次，第二次就不再去请求数据了 */
	protected boolean mHasLoadedOnce;
	/** Fragment当前状态是否可见 */
	protected boolean isVisible;


	@Override
	public void setUserVisibleHint(boolean isVisibleToUser) {
		super.setUserVisibleHint(isVisibleToUser);

		if(getUserVisibleHint()) {
			isVisible = true;
			onVisible();
		} else {
			isVisible = false;
			onInvisible();
		}
	}

	/**
	 * 可见
	 */
	protected void onVisible() {
		lazyLoad();
	}

	/**
	 * 不可见
	 */
	protected void onInvisible() {

	}

	/**
	 * 延迟加载
	 * 子类必须重写此方法
	 */
	protected abstract void lazyLoad();

	@Override
	protected void finalize() throws Throwable {
		super.finalize();
		Log.d("finalize",this.getClass().getName());
	}


}
